package log

import (
	"context"
	"fmt"
	"github.com/alecthomas/log4go"
)

type DefineLog struct{}

// LoadLogger 获取日志对象
func LoadLogger(file string) KisLogger {
	// 加载配置日志文件
	log4go.LoadConfiguration(file)
	return &DefineLog{}
}

func (log *DefineLog) InfoCtx(ctx context.Context, msg string, args ...interface{}) {
	log4go.Info(fmt.Sprintf(fmt.Sprintf("InfoCtx - 上下文: %v, 日志数据: %s", ctx, msg), args...))
}

func (log *DefineLog) ErrorCtx(ctx context.Context, msg string, args ...interface{}) {
	log4go.Error(fmt.Sprintf(fmt.Sprintf("ErrorCtx - 上下文: %v, 日志数据: %s", ctx, msg), args...))
}

func (log *DefineLog) DebugCtx(ctx context.Context, msg string, args ...interface{}) {
	log4go.Debug(fmt.Sprintf(fmt.Sprintf("DebugCtx - 上下文: %v, 日志数据: %s", ctx, msg), args...))
}

func (log *DefineLog) TraceCtx(ctx context.Context, msg string, args ...interface{}) {
	log4go.Trace(fmt.Sprintf(fmt.Sprintf("TraceCtx - 上下文: %v, 日志数据: %s", ctx, msg), args...))
}

func (log *DefineLog) Info(msg string, args ...interface{}) {
	log4go.Info(msg, args...)
}

func (log *DefineLog) Error(msg string, args ...interface{}) {
	log4go.Error(msg, args...)
}

func (log *DefineLog) Debug(msg string, args ...interface{}) {
	log4go.Debug(msg, args...)
}

func (log *DefineLog) Trace(msg string, args ...interface{}) {
	log4go.Trace(msg, args...)
}
